var express = require('express');
var router = express.Router();
var	mongoose = require('mongoose'),
	taskList = mongoose.model('task_taskLists');

/* 设置任务状态 */
router.post('/setTaskStatus', function(req, res, next) {
	let params = req.body;

	if(params.status === 9){	//删除任务
		taskList.remove({
			taskId: params.tid
		}, function(err){
			if(err){
				res.json(err);
			}else{
				res.end();
			}
		})
	}else{	//更改状态
		let completeDate = null;
		if(params.status != 1){	//不合格
			completeDate = new Date();
		}
		taskList.update({
			taskId: params.tid
		}, {
			$set: {
				taskStatus: params.status,
				completeDate: completeDate
			}
		}, function(err, data){
			if(err){
				res.json(err)
			}else{
				res.end();
			}
		})
	}
});

/* 获取周期任务列表 */
router.post('/getCycleTaskList', function(req, res, next) {
	let params = req.body,
		taskDate = null;
	params.data = JSON.parse(params.data);

	switch(params.type){
		case 'week':
			taskDate = {"$gte": new Date(params.data.lastWeek[0]), "$lte": new Date(params.data.thisWeek[6])}
			break;
		case 'month':
			taskDate = {"$gte": new Date(params.data.lastMonth[0]), "$lte": new Date(params.data.thisMonth[params.data.thisMonth.length-1])}
			break;
		default: break;
	}
	taskList.find({
		implement: params.mobile,
		taskDate: taskDate
	}).sort({
		createTime: -1
	}).exec(function(err, data){
		if(err){
			res.json(err)
		}else{
			res.json(data)
		}
	})
});

/* 获取我的任务概况 */
router.post('/getAllTaskInfo', function(req, res, next) {
	let params = req.body;

	taskList.find({
		'$or': [
			{ implement: params.mobile, taskDate: {"$gt": new Date(params.days)} },
			{ examine: params.mobile, taskDate: {"$gt": new Date(params.days)} },
			{ implement: params.mobile, taskStatus: 1 },
			{ examine: params.mobile, taskStatus: 1 },
		]
	}).sort({
		createTime: -1
	}).exec(function(err, data){
		if(err){
			res.json(err)
		}else{
			res.json(data)
		}
	})
});

/* 获取待处理任务 */
router.post('/getTaskTodo', function(req, res, next) {
	let params = req.body;

	taskList.find({
		'$or': [
			{ implement: params.mobile, taskStatus: {"$gte":0, "$lte":1} },
			{ examine: params.mobile, taskStatus: {"$gte":0, "$lte":1} },
		]
	}).sort({
		createTime: -1
	}).exec(function(err, data){
		if(err){
			res.json(err)
		}else{
			res.json(data)
		}
	})
});

/* 获取已完成任务 */
router.post('/getTaskComplete', function(req, res, next) {
	let params = req.body;

	taskList.find({
		implement: params.mobile,
		taskStatus: {"$gte":2, "$lte":3},
		completeDate: {"$gte": new Date(params.days)}
	}).sort({
		createTime: -1
	}).exec(function(err, data){
		if(err){
			res.json(err)
		}else{
			res.json(data)
		}
	})
});

/* 获取任务列表 */
router.post('/getTaskList', function(req, res, next) {
	let params = req.body;

	taskList.find({
		taskAdds: params.taskAdds
	}).sort({
		createTime: -1
	}).exec(function(err, data){
		if(err){
			res.json(err)
		}else{
			res.json(data)
		}
	})
});

/* 添加、编辑任务 */
router.post('/taskSave', function(req, res, next) {
	let params = req.body;

	//添加新任务
	if(params.oType == 'save'){
		var saveData = new taskList(params);
		saveData.save(function(err){
			if(err){
				res.json({
					result: 0,
					error: '保存失败！'
				});
			}else{
				res.json({
					result: 1
				});
			}
		})
	}
});

module.exports = router;